Conversation
There was a problem hiding this comment.
🟡 install.ps1 prints misleading "Downloading" message when using a local binary override
When GIT_AI_LOCAL_BINARY is set, the install.ps1 script unconditionally prints "Downloading git-ai (release: local)..." at line 299, even though no download occurs — the binary is copied locally. The install.sh script correctly handles this with a conditional message ("Using local git-ai binary" vs "Downloading git-ai" at lines 246/252).
Root Cause
The Write-Host at install.ps1:299 was not updated to be conditional when the local binary override was added. In install.sh, the message was properly split:
if [ -n "${GIT_AI_LOCAL_BINARY:-}" ]; then
echo "Using local git-ai binary (release: ${RELEASE_TAG})..."
...
else
echo "Downloading git-ai (release: ${RELEASE_TAG})..."
...
fiBut in install.ps1, the message at line 299 is always printed before the conditional logic at line 316:
Write-Host ("Downloading git-ai (release: {0})..." -f $releaseTag) # line 299 - always says "Downloading"
...
if (-not [string]::IsNullOrWhiteSpace($env:GIT_AI_LOCAL_BINARY)) { # line 316
Copy-Item ... # actually copies, not downloads
}Impact: Users and CI logs will show a misleading "Downloading" message when the local binary override is in use, causing confusion during debugging.
(Refers to line 299)
Was this helpful? React with 👍 or 👎 to provide feedback.
Motivation
install.sh/install.ps1) are exercised automatically across supported OSes and shells.git-aibinary instead of the latest release to catch regressions in the local build + install script interaction.Description
GIT_AI_LOCAL_BINARYininstall.shandinstall.ps1, copying the provided binary instead of downloading a release..github/workflows/install-scripts-local.ymlwhich buildsgit-aifrom source and runsinstall.sh/install.ps1in CI (Ubuntu, macOS, Windows), prepares a fake HOME and a fakeclaudebinary, and verifies shell config updates and Claude hooks..github/workflows/install-scripts-nightly.ymlwhich runs the public install scripts nightly (and on-demand) across Ubuntu/macOS/Windows, prepares a fake environment for Claude detection, and verifies PATH and hook installation.HOME/USERPROFILEviaGITHUB_ENVand add fake bin directories toGITHUB_PATHso the installer detects the fakeclaudebinary and writes~/.claude/settings.json.Testing
cargo build --release --bin git-aiand then run the install scripts withGIT_AI_LOCAL_BINARYset, and the nightly workflow is configured to exercise the public install endpoints; both will report results when CI runs.Codex Task